<!-- 
    漏洞名称：phpcms authkey生成算法问题导致authkey泄露 
    补丁编号：13453425 
    补丁文件：/www/xxxx/caches/configs/system.php 
    补丁来源：云盾自研 
    更新时间：2017-05-11 13:49:45 
    漏洞描述：phpcms在安装时，由于在同一个页面中连续使用mt_rand()，未进行有效mt_srand();种子随机化操作，导致authkey存在泄漏风险，
    黑客可利用该漏洞猜解出网站authkey进而入侵网站。【注意：该补丁修复后会自动修改您网站配置文件中的auth_key和phpsso_auth_key，
    并且只会运行一次，修复期间会有部分用户访问的cookies失效导致需要登录网站，除此无其他影响，可放心升级】 
 -->

<!-- 
    照着下面的函数重新生成一下key值，然后找caches/configs/system.php 里面把两个参数替换一下就ok了
 -->

<?php
function random($length, $chars = '0123456789') { 
    $hash = ''; 
    $max = strlen($chars) - 1; 
    for($i = 0; $i < $length; $i++) { 
        $hash .= $chars[mt_rand(0, $max)]; 
    } 
    return $hash; 
}

//这里重点：只要把random第二参数重新打乱，不要使用以前v9固定的数据 
//phpsso_auth_key
echo "phpsso_auth_key => ";
print_r(random(32, 'abcdefghigklmnopqrstuvwxyz1294567890ABCDEFGHIGKLMNOPQRSTUVWXYZ'));

echo "<br><br>";

//auth_key
echo "auth_key => ";
print_r(random(20, 'abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLM1294567890NOPQRSTUVWXYZ'));
exit;

?>